package main

import (
	"fmt"
	"strconv"
)

// 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数
func isPalindrome(x int) bool {
	str := strconv.Itoa(x)
	var newString string
	//反向循环字符串为切片
	for i := len(str) - 1; i >= 0; i-- {
		if i == len(str)-1 {
			newString = string(str[i])
		} else {
			newString += string(str[i])
		}
	}
	return str == newString
}

// 官方题解
func isPalindrome1(x int) bool {
	if x == 0 {
		return true
	}
	if x < 0 || x%10 == 0 {
		return false
	}
	reversed := 0
	for x > reversed {
		reversed = reversed*10 + x%10
		x /= 10
	}
	return x == reversed || x == reversed/10
}

func main() {
	num := isPalindrome(1231)
	num1 := isPalindrome(121)
	num3 := isPalindrome(865222568)
	fmt.Println("结构为", num, num1, num3)
}
